(function($){
    ujs.define('dd', 'ujs.browser', {
		enableDragDropZone : function($ddZone, opts){
			$ddZone.bind( 'dragenter', 
			    function(e){								
					opts['dragenter'] && opts['dragenter'](e);
					$(this).addClass('dropNotification');
				}
			).bind( 'dragover', 
				function(e){
					//在ondragover中一定要执行preventDefault()，否则ondrop事件不会被触发。另外，如果是从其他应用软件或是文件中拖东西进来，尤其是图片的时候，默认的动作是显示这个图片或是相关信息，并不是真的执行drop。此时需要用用document的ondragover事件把它直接干掉。
					//Since most areas of a web page are not valid places to drop items, the default behaviour is to not allow drops and so this must be overriden. This is achieved by cancelling the event. This can be done by either returning false, or by calling the event's event.preventDefault() method.
					e.preventDefault();
				}
			).bind( 'dragleave',				
				function(e){					
					opts['dragleave'] && opts['dragleave'](e);
					$(this).removeClass('dropNotification');
				}
			).bind( 'drop',
				function(e){				
					$(this).removeClass('dropNotification');
					opts['drop'] && opts['drop'](e);
					return false;
				}
			);
		}
	});
})($);